import {NgModule} from '@angular/core';
import {CommonModule, DatePipe} from '@angular/common';
import {DemoNgZorroAntdModule} from '../../NG-ZORRO/ng-zorro-antd.module';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {NzIconModule} from 'ng-zorro-antd/icon';
import {CooperationRoutingModule} from '../cooperation/cooperation-routing.module';
import {AlertFill} from '@ant-design/icons-angular/icons';
import {IconDefinition} from '@ant-design/icons-angular';
import {DeviceListComponent} from './device-manage/device-list/device-list.component';
import {DeviceDetailComponent} from './device-manage/device-detail/device-detail.component';
import {UsedStoreRoutingModule} from './used-store-routing.module';
import {CommodityListComponent} from './commidity-mamage/commodity-list/commodity-list.component';
import {SelectDeviceComponent} from './commidity-mamage/select-device/select-device.component';
import {CommodityInfoComponent} from './commidity-mamage/commodity-info/commodity-info.component';
import {sharedModule} from '../../sharedModule/shared.module';
import {UsedOrderListComponent} from './used-order-manage/used-order-list/used-order-list.component';
import {UsedOrderDetailsComponent} from './used-order-manage/used-order-details/used-order-details.component';
import {UsedLocationManageComponent} from './used-location-manage/used-location-manage.component';
import {OrderStatusPipe, RefundStatusPipe, PayStatusPipe, SaleAfterStatusPipe, orderSplitAccountPipe, payTypeStatusPipe} from './used-store-manage.pipe';
import {OutStoreListComponent} from './out-store/out-store-list/out-store-list.component';
import {OutStoreAddComponent} from './out-store/out-store-add/out-store-add.component';
import {OutStoreSelectDeviceComponent} from './out-store/out-store-add/out-store-select-device/out-store-select-device.component';
import {OutStoreDetailComponent} from './out-store/out-store-detail/out-store-detail.component';
import {PrintModule} from './out-store/out-store-list/print/print.module';
import { DayPastPipe } from './day-past.pipe';
import {
  SencondGoodStatusPipe,
  UserCouponStatusPipe,
  sencondDescentStatusPipe,
  SencondCouponStatusPipe,
  sencondDescentListStatusPipe,
  ActivityTypeStatusPipe,
  SencondCouponEditStatusPipe
} from './used-marketing-manage/used-marketing-manage.pipe';
import { SecondSaleAfterStatusPipe, SecondSaleAfterModePipe, SecondRefundPriceArrsPipe, domHtmlPipe } from './used-after-sales-manage/used-after-sales-manage.pipe';
import { RentplaneMachineStatusPipe, RentplaneDeviceTypePipe, RentplaneOutTypePipe } from './used-rentplane-manage/used-rentplane-manage.pipe';
import { ManualReleaseModalComponent } from './used-marketing-manage/components/manual-release-modal/manual-release-modal.component';
import { UsedOrderBranchComponent } from './used-order-manage/used-order-branch/used-order-branch.component';
import { LogisticsRecordsComponent } from './logistics-records/logistics-records.component';
import { OutSaleInfoComponent } from './out-store/out-sale-info/out-sale-info.component';
import { SecondCouponListComponent } from './used-marketing-manage/second-coupon-list/second-coupon-list.component';
import { SecondCouponEditComponent } from './used-marketing-manage/second-coupon-edit/second-coupon-edit.component';
import { SecondUserCouponComponent } from './used-marketing-manage/second-user-coupon/second-user-coupon.component';
import { SecondDescentListComponent } from './used-marketing-manage/second-descent-list/second-descent-list.component';
import { SecondDescentEditComponent } from './used-marketing-manage/second-descent-edit/second-descent-edit.component';
import { SecondDescentDetailsComponent } from './used-marketing-manage/second-descent-details/second-descent-details.component';
import { SecondDescentRecordComponent } from './used-marketing-manage/second-descent-record/second-descent-record.component';
import { SecondCouponDetailsComponent } from './used-marketing-manage/second-coupon-details/second-coupon-details.component';
import { ModelSelectTreeComponent } from './used-marketing-manage/components/model-select-tree/model-select-tree.component';
import { GoodsSelectModalComponent } from './used-marketing-manage/components/goods-select-modal/goods-select-modal.component';
import { GoodsPreviewModalComponent } from './used-marketing-manage/components/goods-preview-modal/goods-preview-modal.component';
import { UsedRentplaneListComponent } from './used-rentplane-manage/used-rentplane-list/used-rentplane-list.component';
import { UsedAfterSalesListComponent } from './used-after-sales-manage/used-after-sales-list/used-after-sales-list.component';
import { UsedAfterSalesDetatilsComponent } from './used-after-sales-manage/used-after-sales-detatils/used-after-sales-detatils.component';
import { CommidityLabelListComponent } from './commidity-mamage/commidity-label-list/commidity-label-list.component';
import { CommidityLabelEditComponent } from './commidity-mamage/commidity-label-edit/commidity-label-edit.component';
import { CommidityWatermarkListComponent } from './commidity-mamage/commidity-watermark-list/commidity-watermark-list.component';
import { CommidityWatermarkEditComponent } from './commidity-mamage/commidity-watermark-edit/commidity-watermark-edit.component';
import { HotSearchComponent } from './hot-search/hot-search.component';
import {DeviceCheckComponent} from './device-check/device-check.component';

const icons: IconDefinition[] = [AlertFill];

const pipeArrs = [
  OrderStatusPipe,
  RefundStatusPipe,
  PayStatusPipe,
  SaleAfterStatusPipe,
  orderSplitAccountPipe,
  payTypeStatusPipe,
  SencondGoodStatusPipe,
  UserCouponStatusPipe,
  sencondDescentStatusPipe,
  SencondCouponStatusPipe,
  sencondDescentListStatusPipe,
  ActivityTypeStatusPipe,
  SencondCouponEditStatusPipe,
  RentplaneMachineStatusPipe,
  RentplaneDeviceTypePipe,
  RentplaneOutTypePipe,
  SecondSaleAfterStatusPipe,
  SecondSaleAfterModePipe,
  SecondRefundPriceArrsPipe,
  domHtmlPipe
];

@NgModule({
  declarations: [
    ...pipeArrs,
    ManualReleaseModalComponent,
    DeviceListComponent,
    DeviceDetailComponent,
    CommodityListComponent,
    SelectDeviceComponent,
    CommodityInfoComponent,
    UsedOrderListComponent,
    UsedOrderDetailsComponent,
    UsedLocationManageComponent,
    OutStoreListComponent,
    OutStoreAddComponent,
    OutStoreSelectDeviceComponent,
    OutStoreDetailComponent,
    DayPastPipe,
    UsedOrderBranchComponent,
    LogisticsRecordsComponent,
    OutSaleInfoComponent,
    SecondCouponListComponent,
    SecondCouponEditComponent,
    SecondUserCouponComponent,
    SecondDescentListComponent,
    SecondDescentEditComponent,
    SecondDescentDetailsComponent,
    SecondDescentRecordComponent,
    SecondCouponDetailsComponent,
    ModelSelectTreeComponent,
    GoodsSelectModalComponent,
    GoodsPreviewModalComponent,
    UsedRentplaneListComponent,
    UsedAfterSalesListComponent,
    UsedAfterSalesDetatilsComponent,
    CommidityLabelListComponent,
    CommidityLabelEditComponent,
    CommidityWatermarkListComponent,
    CommidityWatermarkEditComponent,
    HotSearchComponent,
    DeviceCheckComponent
  ],
  imports: [
    CommonModule,
    DemoNgZorroAntdModule,
    sharedModule,
    FormsModule,
    ReactiveFormsModule,
    NzIconModule.forRoot(icons),
    UsedStoreRoutingModule,
    PrintModule,
  ],
  providers: [DatePipe]
})
export class UsedStoreModule {
}
